package 策略模式;

/**
 *  封装角色
 *  它也叫做上下文角色，起承上启下封装作用，屏蔽高层模块对策略、算法的直接访问， 封装可能存在的变化。
 *
 *  策略模式的重点就是封装角色，它是借用了代理模式的思路，大家可以想想，
 *  它和代理 模式有什么差别，差别就是策略模式的封装角色和被封装的策略类不用是同一个接口，如果是同一个接口那就成为了代理模式
 */
public class Context {
    //抽象策略
    private IStrategy strategy = null;
    //构造函数设置具体策略
    public Context(IStrategy _strategy){ this.strategy = _strategy; }
    // 封装后的策略方法
    public void doAnythinig(){ this.strategy.doSomething(); }
}
